home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Software Contest 3
/
FM Towns Software Contest 3.iso
/
exp
/
bpp
/
no1
/
pi.bas
< prev
next >
Wrap
BASIC Source File
|
1994-01-07
|
6KB
|
168 lines
10 ' [ BPP PASS 3 ]
20 ' [ BPP PASS 2 ]
30 ' [ BPP PASS 1 ]
40 '#1
50 '#2
60 '#3
70 '#4
80 '#5
90 '#6
100 '#DEFINE SCALE 320 #7
110 '#8
120 CLEAR ,,4096'#9
130 '#10
140 '[ STACK FRAME ]'#11
150 DIM ZZZSTK!(0)
160 ZZZSPT%(0)=0
170 DIM ZZZSTK#(1024)
180 ZZZSPT%(1)=0
190 DIM ZZZSTK$(0)
200 ZZZSPT%(2)=0
210 DIM ZZZSTK%(1024)
220 ZZZSPT%(3)=0
230 '#12
240 GOSUB *MAIN'#13
250 END'#14
260 '#15
270 *SQUARE'#17
280 ZZZSPT%(1)=ZZZSPT%(1)+3
290 ZZZSPT%(3)=ZZZSPT%(3)+5
300 ZZZSTK%(ZZZSPT%(3)+-4)=ZZZSTK#(ZZZSPT%(1)+-3)*320
310 ZZZSTK%(ZZZSPT%(3)+-3)=ZZZSTK#(ZZZSPT%(1)+-2)*320
320 ZZZSTK%(ZZZSPT%(3)+-2)=(ZZZSTK#(ZZZSPT%(1)+-3)+ZZZSTK#(ZZZSPT%(1)+-1))*320
330 ZZZSTK%(ZZZSPT%(3)+-1)=(ZZZSTK#(ZZZSPT%(1)+-2)+ZZZSTK#(ZZZSPT%(1)+-1))*320
340 IF (ZZZSTK%(ZZZSPT%(3)+-5) )=0 THEN *ZZZ1'#22
350 ZZZSTK%(ZZZSPT%(3)+0)=ZZZSTK%(ZZZSPT%(3)+-4)'#23
360 ZZZSTK%(ZZZSPT%(3)+1)=ZZZSTK%(ZZZSPT%(3)+-3)
370 ZZZSTK%(ZZZSPT%(3)+2)=ZZZSTK%(ZZZSPT%(3)+-2)
380 ZZZSTK%(ZZZSPT%(3)+3)=ZZZSTK%(ZZZSPT%(3)+-1)
390 GOSUB *BOXFILL
400 GOTO *ZZZ2'#24
410 *ZZZ1
420 ZZZSTK%(ZZZSPT%(3)+0)=ZZZSTK%(ZZZSPT%(3)+-4)'#25
430 ZZZSTK%(ZZZSPT%(3)+1)=ZZZSTK%(ZZZSPT%(3)+-3)
440 ZZZSTK%(ZZZSPT%(3)+2)=ZZZSTK%(ZZZSPT%(3)+-2)
450 ZZZSTK%(ZZZSPT%(3)+3)=ZZZSTK%(ZZZSPT%(3)+-1)
460 GOSUB *BOX
470 *ZZZ2'#26
480 *ZZZ0'#27
490 ZZZSPT%(1)=ZZZSPT%(1)-3
500 ZZZSPT%(3)=ZZZSPT%(3)-5
510 RETURN
520 '#28
530 *AREA'#31
540 ZZZSPT%(1)=ZZZSPT%(1)+8
550 IF (ZZZSTK#(ZZZSPT%(1)+-7)^2+ZZZSTK#(ZZZSPT%(1)+-6)^2>1.0 )=0 THEN *ZZZ4
560 ZZZSTK#(ZZZSPT%(1)+0)=ZZZSTK#(ZZZSPT%(1)+-7)'#32
570 ZZZSTK#(ZZZSPT%(1)+1)=ZZZSTK#(ZZZSPT%(1)+-6)
580 ZZZSTK#(ZZZSPT%(1)+2)=ZZZSTK#(ZZZSPT%(1)+-5)
590 ZZZSTK%(ZZZSPT%(3)+0)=0
600 GOSUB *SQUARE
610 ZZZSTK#(ZZZSPT%(1)+-8)=0.0'#33
620 GOTO *ZZZ3'#34
630 GOTO *ZZZ5'#35
640 *ZZZ4
650 IF ((ZZZSTK#(ZZZSPT%(1)+-7)+ZZZSTK#(ZZZSPT%(1)+-5))^2+(ZZZSTK#(ZZZSPT%(1)+-6)+ZZZSTK#(ZZZSPT%(1)+-5))^2<1.0 )=0 THEN *ZZZ6
660 ZZZSTK#(ZZZSPT%(1)+0)=ZZZSTK#(ZZZSPT%(1)+-7)'#36
670 ZZZSTK#(ZZZSPT%(1)+1)=ZZZSTK#(ZZZSPT%(1)+-6)
680 ZZZSTK#(ZZZSPT%(1)+2)=ZZZSTK#(ZZZSPT%(1)+-5)
690 ZZZSTK%(ZZZSPT%(3)+0)=1
700 GOSUB *SQUARE
710 ZZZSTK#(ZZZSPT%(1)+-8)=ZZZSTK#(ZZZSPT%(1)+-5)^2'#37
720 GOTO *ZZZ3'#38
730 GOTO *ZZZ5'#39
740 *ZZZ6
750 IF (ZZZSTK#(ZZZSPT%(1)+-5)<=EPS )=0 THEN *ZZZ7
760 ZZZSTK#(ZZZSPT%(1)+0)=ZZZSTK#(ZZZSPT%(1)+-7)'#40
770 ZZZSTK#(ZZZSPT%(1)+1)=ZZZSTK#(ZZZSPT%(1)+-6)
780 ZZZSTK#(ZZZSPT%(1)+2)=ZZZSTK#(ZZZSPT%(1)+-5)
790 ZZZSTK%(ZZZSPT%(3)+0)=0
800 GOSUB *SQUARE
810 ZZZSTK#(ZZZSPT%(1)+-8)=ZZZSTK#(ZZZSPT%(1)+-5)^2*0.5'#41
820 GOTO *ZZZ3'#42
830 GOTO *ZZZ5'#43
840 *ZZZ7
850 ZZZSTK#(ZZZSPT%(1)+-5)=ZZZSTK#(ZZZSPT%(1)+-5)*0.5'#44
860 ZZZSTK#(ZZZSPT%(1)+0)=ZZZSTK#(ZZZSPT%(1)+-4)'#45
870 ZZZSTK#(ZZZSPT%(1)+1)=ZZZSTK#(ZZZSPT%(1)+-7)
880 ZZZSTK#(ZZZSPT%(1)+2)=ZZZSTK#(ZZZSPT%(1)+-6)
890 ZZZSTK#(ZZZSPT%(1)+3)=ZZZSTK#(ZZZSPT%(1)+-5)
900 ZZZSTK#(ZZZSPT%(1)+-4)=ZZZSTK#(ZZZSPT%(1)+0)
910 GOSUB *AREA
920 ZZZSTK#(ZZZSPT%(1)+-4)=ZZZSTK#(ZZZSPT%(1)+0)
930 ZZZSTK#(ZZZSPT%(1)+0)=ZZZSTK#(ZZZSPT%(1)+-3)'#46
940 ZZZSTK#(ZZZSPT%(1)+1)=ZZZSTK#(ZZZSPT%(1)+-7)
950 ZZZSTK#(ZZZSPT%(1)+2)=ZZZSTK#(ZZZSPT%(1)+-6)+ZZZSTK#(ZZZSPT%(1)+-5)
960 ZZZSTK#(ZZZSPT%(1)+3)=ZZZSTK#(ZZZSPT%(1)+-5)
970 ZZZSTK#(ZZZSPT%(1)+-3)=ZZZSTK#(ZZZSPT%(1)+0)
980 GOSUB *AREA
990 ZZZSTK#(ZZZSPT%(1)+-3)=ZZZSTK#(ZZZSPT%(1)+0)
1000 ZZZSTK#(ZZZSPT%(1)+0)=ZZZSTK#(ZZZSPT%(1)+-2)'#47
1010 ZZZSTK#(ZZZSPT%(1)+1)=ZZZSTK#(ZZZSPT%(1)+-7)+ZZZSTK#(ZZZSPT%(1)+-5)
1020 ZZZSTK#(ZZZSPT%(1)+2)=ZZZSTK#(ZZZSPT%(1)+-6)
1030 ZZZSTK#(ZZZSPT%(1)+3)=ZZZSTK#(ZZZSPT%(1)+-5)
1040 ZZZSTK#(ZZZSPT%(1)+-2)=ZZZSTK#(ZZZSPT%(1)+0)
1050 GOSUB *AREA
1060 ZZZSTK#(ZZZSPT%(1)+-2)=ZZZSTK#(ZZZSPT%(1)+0)
1070 ZZZSTK#(ZZZSPT%(1)+0)=ZZZSTK#(ZZZSPT%(1)+-1)'#48
1080 ZZZSTK#(ZZZSPT%(1)+1)=ZZZSTK#(ZZZSPT%(1)+-7)+ZZZSTK#(ZZZSPT%(1)+-5)
1090 ZZZSTK#(ZZZSPT%(1)+2)=ZZZSTK#(ZZZSPT%(1)+-6)+ZZZSTK#(ZZZSPT%(1)+-5)
1100 ZZZSTK#(ZZZSPT%(1)+3)=ZZZSTK#(ZZZSPT%(1)+-5)
1110 ZZZSTK#(ZZZSPT%(1)+-1)=ZZZSTK#(ZZZSPT%(1)+0)
1120 GOSUB *AREA
1130 ZZZSTK#(ZZZSPT%(1)+-1)=ZZZSTK#(ZZZSPT%(1)+0)
1140 ZZZSTK#(ZZZSPT%(1)+-8)=ZZZSTK#(ZZZSPT%(1)+-4)+ZZZSTK#(ZZZSPT%(1)+-3)+ZZZSTK#(ZZZSPT%(1)+-2)+ZZZSTK#(ZZZSPT%(1)+-1)'#49
1150 GOTO *ZZZ3'#50
1160 *ZZZ5'#51
1170 *ZZZ3'#52
1180 ZZZSPT%(1)=ZZZSPT%(1)-8
1190 RETURN
1200 '#53
1210 *MAIN'#56
1220 ZZZSPT%(1)=ZZZSPT%(1)+1
1230 INPUT "許容誤差 " ;EPS
1240 GOSUB *INITGRAPH'#57
1250 ZZZSTK%(ZZZSPT%(3)+0)=0'#58
1260 ZZZSTK%(ZZZSPT%(3)+1)=0
1270 ZZZSTK%(ZZZSPT%(3)+2)=320
1280 GOSUB *CIRCLEEDGE
1290 ZZZSTK#(ZZZSPT%(1)+0)=ZZZSTK#(ZZZSPT%(1)+-1)'#59
1300 ZZZSTK#(ZZZSPT%(1)+1)=0
1310 ZZZSTK#(ZZZSPT%(1)+2)=0
1320 ZZZSTK#(ZZZSPT%(1)+3)=1.0
1330 ZZZSTK#(ZZZSPT%(1)+-1)=ZZZSTK#(ZZZSPT%(1)+0)
1340 GOSUB *AREA
1350 ZZZSTK#(ZZZSPT%(1)+-1)=ZZZSTK#(ZZZSPT%(1)+0)
1360 ZZZSTK#(ZZZSPT%(1)+-1)=ZZZSTK#(ZZZSPT%(1)+-1)*4'#60
1370 PRINT "π=" ;ZZZSTK#(ZZZSPT%(1)+-1)'#61
1380 *ZZZ8'#62
1390 ZZZSPT%(1)=ZZZSPT%(1)-1
1400 RETURN
1410 '#63
1420 *INITGRAPH'#65
1430 CLS
1440 *ZZZ9'#66
1450 RETURN
1460 '#67
1470 *BOX'#69
1480 ZZZSPT%(3)=ZZZSPT%(3)+4
1490 LINE(ZZZSTK%(ZZZSPT%(3)+-4),ZZZSTK%(ZZZSPT%(3)+-3))-(ZZZSTK%(ZZZSPT%(3)+-2),ZZZSTK%(ZZZSPT%(3)+-1)),PSET,7,B
1500 *ZZZ10'#70
1510 ZZZSPT%(3)=ZZZSPT%(3)-4
1520 RETURN
1530 '#71
1540 *BOXFILL'#73
1550 ZZZSPT%(3)=ZZZSPT%(3)+4
1560 LINE(ZZZSTK%(ZZZSPT%(3)+-4),ZZZSTK%(ZZZSPT%(3)+-3))-(ZZZSTK%(ZZZSPT%(3)+-2),ZZZSTK%(ZZZSPT%(3)+-1)),PSET,1,BF
1570 LINE(ZZZSTK%(ZZZSPT%(3)+-4),ZZZSTK%(ZZZSPT%(3)+-3))-(ZZZSTK%(ZZZSPT%(3)+-2),ZZZSTK%(ZZZSPT%(3)+-1)),PSET,7,B'#74
1580 *ZZZ11'#75
1590 ZZZSPT%(3)=ZZZSPT%(3)-4
1600 RETURN
1610 '#76
1620 *CIRCLEEDGE'#78
1630 ZZZSPT%(3)=ZZZSPT%(3)+3
1640 CIRCLE(ZZZSTK%(ZZZSPT%(3)+-3),ZZZSTK%(ZZZSPT%(3)+-2)),ZZZSTK%(ZZZSPT%(3)+-1)
1650 *ZZZ12'#79
1660 ZZZSPT%(3)=ZZZSPT%(3)-3
1670 RETURN